using System;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("Component")]
	public class Component : UnityObject
	{
		public GameObject GameObject => method_14<GameObject>("get_gameObject", Array.Empty<object>());

		public string Tag => method_13("get_tag");

		public Transform Transform => method_14<Transform>("get_transform", Array.Empty<object>());

		public Transform Parent => method_14<Transform>("get_parent", Array.Empty<object>());

		public Collider Collider => method_14<Collider>("get_collider", Array.Empty<object>());

		public Component(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Component(IntPtr address)
			: base(address, "Component")
		{
		}

		public Component GetComponent(string type)
		{
			return method_15<Component>("GetComponent", new Class276.Enum20[1] { Class276.Enum20.String }, new object[1] { type });
		}

		public Component GetComponent<T>() where T : Component
		{
			return GetComponent(typeof(T).Name);
		}
	}
}
